﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using DTO;

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Xml.Linq;


namespace DAO
{
    public class TaiKhoanDAO
    {
        public List<TaiKhoanDTO> XemDanhSachNguoiDung()
        {

            SqlConnection myCONN = DataProvider.ConnectDB();
            string mySQL = "SELECT Id_Tai_Khoan, User_Names FROM TAIKHOAN WHERE Id_Tai_Khoan != 1 ";
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlDataReader reader = cmd.ExecuteReader();
            List<TaiKhoanDTO> danhsach = new List<TaiKhoanDTO>();
            while (reader.Read())
            {
                TaiKhoanDTO tkDTO = new TaiKhoanDTO();

                tkDTO.Id_Tai_Khoan = reader.GetInt32(0);
                tkDTO.User_Name = reader.GetString(1);
                danhsach.Add(tkDTO);
            }
            myCONN.Close();
            return danhsach;
        }
        public int ThemNguoiDung(TaiKhoanDTO tkDTO)
        {
            SqlConnection myCONN = DataProvider.ConnectDB();
            //Viết Câu Lệnh SQL
            string mySQL = " INSERT INTO TAIKHOAN(User_Names,Pass,Id_Loai_Tai_Khoan) VALUES(@User_Names,@Pass,@Id_Loai_TK) ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@User_Names", SqlDbType.NVarChar, -1);
            para.Value = tkDTO.User_Name;
            para = cmd.Parameters.Add("@Pass", SqlDbType.NVarChar, -1);
            para.Value = tkDTO.Pass;
            para = cmd.Parameters.Add("@Id_Loai_TK", SqlDbType.Int, -1);
            para.Value = tkDTO.Id_Loai_TK;
            int kq;
            try
            {
                kq = cmd.ExecuteNonQuery();
            }catch(Exception ex)
            {
                return 0;
            }
            
            myCONN.Close();
            if (kq >= 0)
                return 1;
            else
                return 0;
        }
        // Xóa Người Dùng
        public void XoaTaiKhoan(int ID_TK)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "DELETE FROM TAIKHOAN WHERE Id_Tai_Khoan = @ID_TK ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para = cmd.Parameters.Add("@ID_TK", SqlDbType.Int, -1);
            para.Value = ID_TK;
            
            cmd.ExecuteReader();

            
        }
        // Cập nhập mật khẩu mới cho người dùng
        public int CapNhapTaiKhoan(int ID_TK,string PassWord)
        {
            // Tạo Kết Nối CSDL
            SqlConnection myCONN = DataProvider.ConnectDB();

            //Viết Câu Lệnh SQL
            string mySQL = "UPDATE TAIKHOAN SET  PASS=@PassWord WHERE Id_Tai_Khoan = @ID_TK ";

            // Thực hiện truy vấn
            SqlCommand cmd = new SqlCommand(mySQL, myCONN);
            SqlParameter para;
            para = cmd.Parameters.Add("@PassWord", SqlDbType.VarChar, -1);
            para.Value = PassWord;
            para = cmd.Parameters.Add("@ID_TK", SqlDbType.Int, -1);
            para.Value = ID_TK;

            int kq=cmd.ExecuteNonQuery();
            if (kq >= 0)
            {
                return 1;
            }
            else
            {
                return 0;
            }


        }
    }
}
